package com.eastedu.superise.handler.question.handler;

import com.eastedu.common.model.question.QuestionMainContent;
import com.eastedu.superise.handler.question.handler.answerparentheses.MatchType;

import java.util.function.Predicate;

/**
 * 内容处理
 *
 * @author Administrator
 */
public interface ContentHandler {

    /**
     * Support boolean.
     *
     * @param <T>     the type parameter
     * @param content the content
     * @param matchType the match type
     * @return the boolean
     */
    <T extends QuestionMainContent<T>> boolean support(T content, MatchType matchType);

    /**
     * 处理（这里只支持处理填空题）
     *
     * @param <T>       the type parameter
     * @param content the content
     */
    <T extends QuestionMainContent<T>> void handle(T content);

    /**
     * 根据条件进行处理.
     *
     * @param <T>         the type parameter
     * @param content the content
     * @param predicate the predicate
     */
    <T extends QuestionMainContent<T>> void handle(T content, Predicate<T> predicate);
}
